Topology data of a system such as a multiprocessor system is needed for system initialization, based on which the system routing infrastructure can be computed and configured correctly. However, before setting the system routing, components in the system cannot communicate with each other freely, thus none of them can collect the entire topology information directly. This causes a contradiction. To solve this problem, some systems use a hardware capability for a processor component to find out its immediate neighboring components. For example, a system service processor (SSP), which is a special processor that communicates using a low speed out-of-band channel (e.g., an Inter-Integrated Circuit (I2C) link) may communicate with other components of the system to determine topology.
Due to the complexity of some topologies, it can be highly time consuming for the SSP to set up the entire system routing directly. Accordingly, other systems require storing a massive amount of pre-computed data corresponding to routing information in Basic Input Output System (BIOS). For example, in a system with ten point-to-point (PTP) links, a maximum of 1024 topologies can exist. To store pre-computed data for all the possible topologies requires kilobytes, which is very expensive for BIOS flash storage.